﻿#pragma once

_NAMESPACE_BEGIN

/// 效果管理器，管理OGRE的效果合成器等特效
class EffectManager
{
public:
	
	/// 单体类声明
	SINGLETON_HELPER(EffectManager)

	EffectManager(){}

	virtual ~EffectManager(){}

public:
	
	/// 效果管理器初始化
	void Initial();

	/// 创建效果
	void CreateEffect();

	/// 创建纹理
	void CreateTextures();

	/// 增加效果合成器到合成器链
	/// \param[in] name 唯一标识效果合成器的名称
	/// \param[in] pos 在合成器链中的位置
	void AddCompositor(CONST_REF(String)name,int pos=-1);

	/// 设置效果合成器链中的合成器的状态
	/// \param[in] name 标识合成器的名称
	/// \param[in] en true为开启，否则为关闭
	void SetCompositor(CONST_REF(String)name,bool en);
};

_NAMESPACE_END